package edu.qqilin.springframework.beans;

import java.util.ArrayList;
import java.util.List;

/**
 * Description: 属性集合。
 * <p>
 * 一个 Bean 可能有多个属性，这个类用来包装 List<PropertyValue>，方便操作。
 *
 * @author qqilin1213
 * @version 1.0
 * @date 2025/11/23 15:56
 */
public class PropertyValues {
    private final List<PropertyValue> propertyValueList = new ArrayList<>();

    public void addPropertyValue(PropertyValue pv) {
        this.propertyValueList.add(pv);
    }

    public PropertyValue[] getPropertyValues() {
        // 利用 JVM 优化，返回正确类型的数组。
        return this.propertyValueList.toArray(new PropertyValue[0]);
    }

    public PropertyValue getPropertyValue(String propertyName) {
        for (PropertyValue pv : this.propertyValueList) {
            if (pv.getName().equals(propertyName)) {
                return pv;
            }
        }
        return null;
    }
}
